meson: Build .rc files for Windows
authorChun-wei Fan <fanchunwei@src.gnome.org>
Mon, 7 Aug 2017 11:10:18 +0000 (19:10 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Thu, 6 Dec 2018 09:07:33 +0000 (17:07 +0800)
Build the .rc files for Windows so that one can track the version info
more easily for Windows, as well as giving GTK+ apps a default icon.

Also, move back the manifest embedding for the themed Windows print
dialog back into gtk-win32.rc.body.in, so that we just have one way of
embedding this manifest file, making things easier for ourselves, as
this is supported in the later Visual Studio compilers as well, which is
2013 and later.

gdk/meson.build
gtk/gtk-win32.rc.body.in
gtk/meson.build

index d68307392b107e51407848a78b8db50a76cb619e..2ed2585f0faab776ede84196785f1662ac37ebee 100644 (file)
@@ -160,6 +160,7 @@ gdkx11_inc = include_directories('x11')
 gdkwayland_inc = include_directories('wayland')
 
 wlinc = include_directories('.')
+win32rcinc = include_directories('win32/rc')
 
 gdk_gen_headers = [gdkenum_h, gdkmarshal_h, gdkconfig, gdkversionmacros]
 
index 251128fe481d9bd72c5af331ee1a98af16842709..b876a6ddf51846236f2c77e4c529b0c0a84e303e 100644 (file)
@@ -1,3 +1,4 @@
+#include <winuser.h>
 #include <winver.h>
 
 GTK_ICON               ICON                    "gtk.ico"
@@ -18,9 +19,9 @@ VS_VERSION_INFO VERSIONINFO
        VALUE "CompanyName", "The GTK developer community"
        VALUE "FileDescription", "GIMP Toolkit"
        VALUE "FileVersion", "@GTK_VERSION@.0"
-       VALUE "InternalName", "libgtk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@"
-       VALUE "LegalCopyright", "Copyright © 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GTK+ Team and others 1997-2011."
-       VALUE "OriginalFilename", "libgtk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll"
+       VALUE "InternalName", "libgtk-win32-@GTK_API_VERSION@"
+       VALUE "LegalCopyright", "Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GTK+ Team and others 1997-2011."
+       VALUE "OriginalFilename", "libgtk-win32-@GTK_API_VERSION@.dll"
        VALUE "ProductName", "GTK+"
        VALUE "ProductVersion", "@GTK_VERSION@"
       END
@@ -30,3 +31,5 @@ VS_VERSION_INFO VERSIONINFO
       VALUE "Translation", 0x409, 1200
     END
   END
+
+ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST libgtk4.manifest
\ No newline at end of file
index 8559ed0f7c5fdcd7bd931d7075d56597a1ee0349..abc66cbc905fdca67f0fea89a673f5311da666e9 100644 (file)
@@ -841,6 +841,12 @@ gtkversion_cdata.set('GTK_MINOR_VERSION', gtk_minor_version)
 gtkversion_cdata.set('GTK_MICRO_VERSION', gtk_micro_version)
 gtkversion_cdata.set('GTK_BINARY_AGE', gtk_binary_age)
 gtkversion_cdata.set('GTK_INTERFACE_AGE', gtk_interface_age)
+gtkversion_cdata.set('GTK_VERSION', gtk_version)
+gtkversion_cdata.set('GTK_API_VERSION', gtk_api_version)
+
+if host_machine.system() == 'windows'
+  gtkversion_cdata.set('EXE_MANIFEST_ARCHITECTURE', '*')
+endif
 
 gtkversion = configure_file(input: 'gtkversion.h.in',
                             output: 'gtkversion.h',
@@ -916,6 +922,17 @@ if win32_enabled
                cc.find_library('imm32'),
                cc.find_library('setupapi'),
                cc.find_library('winmm')]
+
+  gtkwin32rc = configure_file(input: 'gtk-win32.rc.body.in',
+                              output: 'gtk-win32.rc.body',
+                              configuration: gtkversion_cdata)
+
+  win32_manifest = configure_file(input: 'libgtk4.manifest.in',
+                                  output: 'libgtk4.manifest',
+                                  configuration: gtkversion_cdata)
+
+  win32res = import('windows').compile_resources(gtkwin32rc, include_directories : win32rcinc)
+  gtk_sources += win32res
 else
   gtk_deps += [ atkbridge_dep, ]
 endif